Trace based debugging and visualisation of concurrent Java programs with UML
نویسنده
چکیده
This thesis describes an approach for automated detection of concurrent liveness failures in the execution of Java programs. Concurrent programs are highly prone to failure because of the inherent nondeterminism. Developers of concurrent Java programs are not well supported in detecting concurrency failures, i.e. failures that are due to interactions between multiple threads. These failures are neither well documented nor do tools like debuggers allow developers to identify them at runtime. This thesis analyses and classifies liveness failures, a special kind of concurrency failures, and the associated potentials in Java. A UML statechart is developed that models the interaction of Java threads. Liveness failures and potentials are specified formally in terms of the states controlling the interaction of threads and in terms of the events exchanged by interacting threads. Detection algorithms are developed to identify the specified failures in a program execution. A UML profile extending UML interaction diagrams is developed to visualise the execution of concurrent Java programs and detected liveness failures and potentials. In order to deploy the algorithms and the UML profile, tool support concepts are provided. This involves the specification of a trace format and a tracing method to collect execution data from a running Java program, and the specification of methods to analyse the trace and to visualise the trace and the analysis results. The concepts are implemented in the JAVIS prototype, which consists of a Java tracer with an analysis facility for monitoring liveness in concurrent Java programs, and a plug-in extension to the UML CASE tool Together for importing and displaying concurrent Java traces including failures and potentials.
منابع مشابه
JACOT: a tool to dynamically visualise the execution of concurrent Java programs
The introduction of concurrency within emerging languages such as Java brings challenging new concepts to the user. Owing to the inherent non-determinism of threads and multiple flow of control in concurrent programs, traditional debugging and comprehension techniques, such as source code analysis, do not suffice. We believe that visualisation can assist in expediting comprehension of concurren...
متن کاملJaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs
Debugging concurrent Java programs is a difficult task because of multiple control flows and inherent nondeterminism. It requires techniques not provided by traditional debuggers such as tracing, visualization, and automated error analysis. Therefore, we have developed the JaVis environment for visualizing and debugging concurrent Java programs. The information about a running program is collec...
متن کاملVisualizing the Synchronization of Java-Threads with UML
Concurrent programming is a complex task, even with modern languages such as Java who provide languagebased support for multithreading and synchronization. In addition to typical errors from sequential programming concurrent programming is prone to security and lifeness errors, which are difficult to detect due to the inherent nondeterminism in concurrent programs. While debugging is still main...
متن کاملA Conceptual Model for Visualising Concurrent Java Programs Using UML
Understanding concurrent object-oriented software execution is not a trivial task. This is mainly due to the interleaving of threads, and multiple flows of control that result in different outputs being produced at successive executions of the program. We believe that visualisation can be of assistance to developers in expediting the comprehension of concurrent object-oriented software. In this...
متن کاملLock Removal for Concurrent Trace Programs
We propose a trace-based concurrent program analysis to soundly remove redundant synchronizations such as locks while preserving the behaviors of the concurrent computation. Our new method is computationally efficient in that it involves only thread-local computation and therefore avoids interleaving explosion, which is known as the main hurdle for scalable concurrency analysis. Our method buil...
متن کامل